上一期我們淺嚐了程式碼的趣味,這次我們要防範未然。
「我們帶來:Unity Debug.Log。」
「這是我們有史以來推出最先進的Debug Tool。」
「最有能力的Unity Debug Tool,從古至今。」
其實在專研功能的時候,我認為最快的方法是:
「真的要這樣嗎,師傅!」
就只能這樣子了。
所以Unity Debug.Log是什麼?
其實就和我們在其他程式語言在發現bug的時候一樣。
「欸?奇怪,到底有沒有跑到這裡啊?」
「不對啊,這邊他算出來是多少?」
「Hello world!」「Hello world!」
「Hello world!」
「Hello world!」
「Hello world!」
「Out of Memory: Insufficient memory to continue the execution of the program.」
那我們可以怎麼使用Unity Debug.Log呢?
整數、浮點數、字串、布林值等都可以直接顯示。
一些可以被顯示名稱的遊戲物件也可以使用gameObject.name顯示名稱。
也能夠使用富文字的用法。
以下為Unity官方的示範文件。
using UnityEngine;
using System.Collections;
public class MyGameClass : MonoBehaviour
{
// A Light used in the Scene and needed by MyGameMethod().
public Light light;
void MyGameMethod()
{
// Message with a GameObject name.
// 使用函式顯示遊戲物件名稱
Debug.Log("Hello: " + gameObject.name);
// Message with light type. This is an Object example.
// 顯示物件Type
Debug.Log(light.type);
// Message using rich text.
// 使用富文字MarkUp
Debug.Log("<color=red>Error: </color>AssetBundle not found");
}
}
或是在參數中,一同傳入物件,可以達到在Unity Editor高亮顯示該遊戲物件的效果。
float health = 100;
void Start()
{
// Logs the player's health, with a reference to this game object.
Debug.Log("Player Health: " + health, gameObject);
}
所以為什麼要使用Unity Debug.Log而不是print就好呢?
print確實是比較容易撰寫,但Debug.Log對物件的支援是不一樣的。
還有一些特殊情形下是不得不使用Debug.Log的。
而剛剛提到的Debug Warning和Debug Error該怎麼使用呢?
只要在Log後面加上後綴就好了。
void Start()
{
Debug.Log("This is a basic log message");
Debug.LogWarning("This is a basic warning message");
Debug.LogError("This is a basic error message");
}
畫面會顯示這樣:
分類的動圖一樣使用上面分享的那篇文章。